package com.hoshiicloud.saleorder.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
* <p>
* 主订单信息
* </p>
*
* @author zhangshuhu
* @since 2019-06-03
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="OrderMainDetailDTO对象", description="主订单信息")
public class OrderMainDetailDTO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
    * 主订单号
    */
    @ApiModelProperty(value = "主订单号")
    private String mainno;
    /**
    * 主订单类别   1-实物订单  2-服务订单
    */
    @ApiModelProperty(value = "主订单类别   1-实物订单  2-服务订单")
    private Integer type;
    /**
    * 渠道  1-线上 2-线下
    */
    @ApiModelProperty(value = "渠道  1-线上 2-线下")
    private Integer channel;
    /**
    * 1（APP_ANDROID ），2（APP_IOS），3（WEB_MOBILE），4（WEB_PC），5（SMALL_ROUTINE_ANDROID），6（SMALL_ROUTINE_IOS）
    */
    @ApiModelProperty(value = "1（APP_ANDROID ），2（APP_IOS），3（WEB_MOBILE），4（WEB_PC），5（SMALL_ROUTINE_ANDROID），6（SMALL_ROUTINE_IOS）")
    private Integer source;
    /**
    * 结算方式  1-一次结清  2 分期付款
    */
    @ApiModelProperty(value = "结算方式  1-一次结清  2 分期付款")
    private Integer settlement;
    /**
    * 租户ID
    */
    @ApiModelProperty(value = "租户ID")
    private Long companyid;
    /**
    * 平台ID
    */
    @ApiModelProperty(value = "平台ID")
    private Long platformid;
    /**
    * 店铺ID
    */
    @ApiModelProperty(value = "店铺ID")
    private Long storeid;
    /**
    * 会员ID
    */
    @ApiModelProperty(value = "会员ID")
    private Long memberid;
    /**
    * 收货人的姓名
    */
    @ApiModelProperty(value = "收货人的姓名")
    private String consignee;
    /**
    * 收货人的国家region
    */
    @ApiModelProperty(value = "收货人的国家region")
    private Long country;
    /**
    * 国家名称
    */
    @ApiModelProperty(value = "国家名称")
    private String countryName;
    /**
    * 收货人的省份
    */
    @ApiModelProperty(value = "收货人的省份")
    private Long province;
    /**
    * 省份名称
    */
    @ApiModelProperty(value = "省份名称")
    private String provinceName;
    /**
    * 收货人的城市
    */
    @ApiModelProperty(value = "收货人的城市")
    private Long city;
    /**
    * 城市名称
    */
    @ApiModelProperty(value = "城市名称")
    private String cityName;
    /**
    * 收货人的地区
    */
    @ApiModelProperty(value = "收货人的地区")
    private Long district;
    /**
    * 地区名称
    */
    @ApiModelProperty(value = "地区名称")
    private String districtName;
    /**
    * 收货人的详细地址
    */
    @ApiModelProperty(value = "收货人的详细地址")
    private String address;
    /**
    * 收货人的邮编
    */
    @ApiModelProperty(value = "收货人的邮编")
    private String zipcode;
    /**
    * 收货人的电话
    */
    @ApiModelProperty(value = "收货人的电话")
    private String telphone;
    /**
    * 收货人的手机
    */
    @ApiModelProperty(value = "收货人的手机")
    private String mobile;
    /**
    * 收货人的邮箱
    */
    @ApiModelProperty(value = "收货人的邮箱")
    private String email;
    /**
    * 收货人的最佳送货时间
    */
    @ApiModelProperty(value = "收货人的最佳送货时间")
    private String bestTime;
    /**
    * 收货人的地址的标志性建筑
    */
    @ApiModelProperty(value = "收货人的地址的标志性建筑")
    private String signBuilding;
    /**
    * 订单附言，由用户提交订单前填写
    */
    @ApiModelProperty(value = "订单附言，由用户提交订单前填写")
    private String postscript;
    /**
    * 用户选择的配送方式id，取值表shipping
    */
    @ApiModelProperty(value = "用户选择的配送方式id，取值表shipping")
    private Integer shippingId;
    /**
    * 用户选择的配送方式的名称，取值表shipping
    */
    @ApiModelProperty(value = "用户选择的配送方式的名称，取值表shipping")
    private String shippingName;
    /**
    * 用户选择的支付方式的id，取值表payment
    */
    @ApiModelProperty(value = "用户选择的支付方式的id，取值表payment")
    private Integer payId;
    /**
    * 用户选择的支付方式的名称，取值表payment
    */
    @ApiModelProperty(value = "用户选择的支付方式的名称，取值表payment")
    private String payName;
    /**
    * 缺货处理方式，等待所有商品备齐后再发； 取消订单；与店主协商
    */
    @ApiModelProperty(value = "缺货处理方式，等待所有商品备齐后再发； 取消订单；与店主协商")
    private String howOos;
    /**
    * 包装名称，取值表pack
    */
    @ApiModelProperty(value = "包装名称，取值表pack")
    private String packName;
    /**
    * 包装id，取值取值表pack
    */
    @ApiModelProperty(value = "包装id，取值取值表pack")
    private Integer packId;
    /**
    * 发票类型，用户页面选择
    */
    @ApiModelProperty(value = "发票类型，用户页面选择")
    private String invType;
    /**
    * 发票抬头，用户页面填写
    */
    @ApiModelProperty(value = "发票抬头，用户页面填写")
    private String invPayee;
    /**
    * 发票内容，用户页面选择
    */
    @ApiModelProperty(value = "发票内容，用户页面选择")
    private String invContent;
    /**
    * 订单的来源页面
    */
    @ApiModelProperty(value = "订单的来源页面")
    private String referer;
    /**
    * 发货单号，发货时填写，可在订单查询查看
    */
    @ApiModelProperty(value = "发货单号，发货时填写，可在订单查询查看")
    private String invoiceNo;
    /**
    * 商家给客户的留言,当该字段有值时可以在订单查询看到
    */
    @ApiModelProperty(value = "商家给客户的留言,当该字段有值时可以在订单查询看到")
    private String toBuyer;
    /**
    * 付款备注，在订单管理里编辑修改
    */
    @ApiModelProperty(value = "付款备注，在订单管理里编辑修改")
    private String payNote;
    /**
    * 商品总金额
    */
    @ApiModelProperty(value = "商品总金额")
    private BigDecimal goodsAmount;
    /**
    * 配送费用
    */
    @ApiModelProperty(value = "配送费用")
    private BigDecimal shippingFee;
    /**
    * 保价费用
    */
    @ApiModelProperty(value = "保价费用")
    private BigDecimal insureFee;
    /**
    * 支付费用(,跟支付方式的配置相关，取值表payment)
    */
    @ApiModelProperty(value = "支付费用(,跟支付方式的配置相关，取值表payment)")
    private BigDecimal payFee;
    /**
    * 包装费用，取值表取值表pack
    */
    @ApiModelProperty(value = "包装费用，取值表取值表pack")
    private BigDecimal packFee;
    /**
    * 发票税额
    */
    @ApiModelProperty(value = "发票税额")
    private BigDecimal tax;
    /**
    * 积分数
    */
    @ApiModelProperty(value = "积分数")
    private Long points;
    /**
    * 应付款金额
    */
    @ApiModelProperty(value = "应付款金额")
    private BigDecimal orderAmount;
    /**
    * 订单实付金额
    */
    @ApiModelProperty(value = "订单实付金额")
    private BigDecimal amount;
    /**
    * 退款金额
    */
    @ApiModelProperty(value = "退款金额")
    private BigDecimal backAmount;
    /**
    * 优惠券金额（抵扣金额）
    */
    @ApiModelProperty(value = "优惠券金额（抵扣金额）")
    private BigDecimal benefitsAmount;
    /**
    * 余额抵扣金额
    */
    @ApiModelProperty(value = "余额抵扣金额")
    private BigDecimal balanceAmount;
    /**
    * 金币（积分）金额
    */
    @ApiModelProperty(value = "金币（积分）金额")
    private BigDecimal coinsAmount;
    /**
    * 是否删除 0- 未删 1-已删除
    */
    @ApiModelProperty(value = "是否删除 0- 未删 1-已删除")
    private Integer deleted;
    /**
    * 付款时间
    */
    @ApiModelProperty(value = "付款时间")
    private LocalDateTime paidtime;
    /**
    * 取消时间
    */
    @ApiModelProperty(value = "取消时间")
    private LocalDateTime cancelledtime;
    /**
    * 交付时间
    */
    @ApiModelProperty(value = "交付时间")
    private LocalDateTime deliverytime;
    /**
    * 收货时间
    */
    @ApiModelProperty(value = "收货时间")
    private LocalDateTime receivedtime;
    /**
    * 提交时间
    */
    @ApiModelProperty(value = "提交时间")
    private LocalDateTime createdtime;
    /**
    * 制单人
    */
    @ApiModelProperty(value = "制单人")
    private String createdby;
    /**
    * 更新时间
    */
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updatedtime;
    /**
    * 更新人
    */
    @ApiModelProperty(value = "更新人")
    private String updatedby;
}
